# 张量有形状。下面是几个相关术语：
#
# 形状：张量的每个轴的长度（元素数量）。
# 秩：张量轴数。标量的秩为 0，向量的秩为 1，矩阵的秩为 2。
# 轴或维度：张量的一个特殊维度。
# 大小：张量的总项数，即形状矢量元素的乘积
import numpy as np
import tensorflow as tf

a = tf.constant([[1,1],[1,1]])
# print(a.shape)
# 轴的长度 h 是行的长度  w 是列的长度
# h,w = a.shape

# 输出张量的维度
# 所谓的"秩" 就是指的的维度大小.
print(a.ndim) # 2维: x,y 轴

# 输出张量中的项数
print(len(a)) # y轴上的项数
print(a.shape[0])

print(len(a[0])) # X轴上的项数
print(a.shape[1])


rank_4_tensor = tf.zeros([3, 2, 4, 5])
# tf.zeros([3, 2, 4, 5])
# 轴1 的长度为 3  写法 axis=0
# 轴2 的长度为 2  写法 axis=1
# 轴3 的长度为 4  写法 axis=2
# 轴4 的长度为 5  写法 axis=3

# 计算张量中所有项数的总和
print(tf.size(rank_4_tensor))
print(tf.size(rank_4_tensor).numpy())

# 只要是tensorflow(tf),它的结果必定是一个Tensor对象,
# 所以需要在使用前转化为numpy




